package com.gqj.meter.service;

import com.gqj.meter.domain.MdOutTask;
import com.gqj.meter.domain.MdOutTaskDetails;

import java.util.List;

/**
 * 出入库任务Service接口
 *
 * @author lxq
 * @date lxq-02-10
 */
public interface IMdOutTaskService {
    /**
     * 查询出入库任务
     *
     * @param outTaskId 出入库任务主键
     * @return 出入库任务
     */
    public MdOutTask selectMdOutTaskByOutTaskId(Long outTaskId);

    /**
     * 查询出入库任务列表
     *
     * @param mdOutTask 出入库任务
     * @return 出入库任务集合
     */
    public List<MdOutTask> selectMdOutTaskList(MdOutTask mdOutTask);

    /**
     * 新增出入库任务
     *
     * @param mdOutTask 出入库任务
     * @return 结果
     */
    public int insertMdOutTask(MdOutTask mdOutTask);

    /**
     * 修改出入库任务
     *
     * @param mdOutTask 出入库任务
     * @return 结果
     */
    public int updateMdOutTask(MdOutTask mdOutTask);

    /**
     * 修改出入库任务状态
     *
     * @param mdOutTask 出入库任务
     * @return 结果
     */
    public int updateMdOutTaskStatus(MdOutTask mdOutTask);

    /**
     * 批量删除出入库任务
     *
     * @param outTaskIds 需要删除的出入库任务主键集合
     * @return 结果
     */
    public int deleteMdOutTaskByOutTaskIds(Long[] outTaskIds);

    /**
     * 删除出入库任务信息
     *
     * @param outTaskId 出入库任务主键
     * @return 结果
     */
    public int deleteMdOutTaskByOutTaskId(Long outTaskId);

    /**
     * 校验任务编号是否唯一
     *
     * @param mdOutTask 任务信息
     * @return 结果
     */
    public String checkInTaskNoUnique(MdOutTask mdOutTask);

    /**
     * 新增出入库任务(工作台)
     *
     * @param mdOutTask 出入库任务
     * @return 结果
     */
    public int insertMdOutTaskWorktop(MdOutTask mdOutTask);
}
